import java.awt.Point;


public class AvionBombardero extends AvionConArmas {
	
	int cantidadDeMovimientos;	
	AvionDelJugador enemigoPrincipal;
	MoverEnZigZagVertical moverEnZigZagVertical;
	
	public AvionBombardero(){
		
		//Inicializo el ancestro
		super();
		
		nivelDeVida = 100;
		radioDeColision = 3;
		cantidadDeMovimientos = 0;
		puntajePorDestruccion = 30;
		
		
		//incializo las armas
		LanzaTorpedosRastreadores lanzaTropedosRastreadores = new LanzaTorpedosRastreadores();		
		lanzaTropedosRastreadores.setCantidadDeMuniciones(3);
		
		LanzaCohetes lanzaCohetes = new LanzaCohetes;
		lanzaCohetes.setCantidadDeMuniciones(10);
		
		CanionLaser canionLaser = new CanionLaser();
		
		//Agrego las armas
		this.agregarArma(lanzaTropedosRastreadores);
		this.agregarArma(lanzaCohetes);
		this.agregarArma(canionLaser);
		
		//instancio el movimiento en zig zag
		moverEnZigZagVertical = new MoverEnZigZagVertical(radioDeColision);
		
	}
	
	//Se destruye el avion y si queda algun arma ademas del canion laser, se crea un item con esa arma y se arroja al escenario
	public void destruir(){
		
		estaDestruido = true;
		
		if(this.cantidadArmas() > 1){
			ItemArma item = new ItemArma();
			Arma arma = new Arma();
			arma = this.getPrimero();
			arma.setCantidadDeMuniciones(5);
			item.agregarArma(arma);
			item.setPosicion(this.getPosicion());
			//Escenario escenario = new Escenario();
 			escenario = Escenario.getInstancia();
 			escenario.agregarItemAlJuego(item);
			
		}
		
	}
	
	//Este metodo se fija hay municiones en las armas, en orden decreciente de poder de destruccion. Luego dispara el arma que encuentre primero cargada
	public void disparar(){
		
		//Falta el tipo de escenario
		escenario = Escenario.getInstancia();
		//SE HACE ASI ESTO?
		enemigoPrincipal = (escenario.getAvionDelJugador())[0];
		
		
		//ACA HAY UNA PARTE DEL CODIGO QUE NO ENTIENDO COMO TRADUCIR	
		
		
	}
	
	public AvionDelJugador getEnemigoPrincipal(){
		
		return enemigoPrincipal;
	}
		
	
	
	//Hace vivir al avion, se movera de arriba a abajo, disparando cada cuatro pasos
	public void actuar(){
		
		Point posicionActual;
				
		posicionActual = this.getPosicion();
		
		
		//Incrementamos la cant de movimientos
		cantidadDeMovimientos++;
		
		//Muevo el avion
		posicionActual = moverEnZigZagVertical.mover(posicionActual, cantidadDeMovimientos);
		
		//Guardo la posicion
		this.setPosicion(posicionActual);
		
		//Cada cuatro pasos se produce el disparo
		//Si se realizo una cierta cantidad de movimientos, se dispara
		if(cantidadDeMovimientos % 4 == 0)
			this.disparar();
		
		cantidadDeMovimientos++;		
		
		
	}
	
	
}
